<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>api_shim.core.http.WebSocket</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        Package&nbsp;api_shim ::
        <a href="api_shim.core-module.html">Package&nbsp;core</a> ::
        <a href="api_shim.core.http-module.html">Module&nbsp;http</a> ::
        Class&nbsp;WebSocket
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="api_shim.core.http.WebSocket-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class WebSocket</h1><p class="nomargin-top"><span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket">source&nbsp;code</a></span></p>
<pre class="base-tree">
         object --+    
                  |    
 <a href="api_shim.core.streams.ReadStream-class.html">streams.ReadStream</a> --+
                      |
         object --+   |
                  |   |
<a href="api_shim.core.streams.WriteStream-class.html">streams.WriteStream</a> --+
                      |
                     <strong class="uidshort">WebSocket</strong>
</pre>

<dl><dt>Known Subclasses:</dt>
<dd>
      <ul class="subclass-list">
<li><a href="api_shim.core.http.ServerWebSocket-class.html">ServerWebSocket</a></li>  </ul>
</dd></dl>

<hr />
<p>Encapsulates an HTML 5 Websocket.</p>
  <p>Instances of this class are created by an HttpClient instance when a 
  client succeeds in a websocket handshake with a server. Once an instance 
  has been obtained it can be used to s or receive buffers of data from the
  connection, a bit like a TCP socket.</p>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="api_shim.core.http.WebSocket-class.html#__init__" class="summary-sig-name">__init__</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">websocket</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.__init__">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="api_shim.core.http.WebSocket-class.html#binary_handler_id" class="summary-sig-name">binary_handler_id</a>(<span class="summary-sig-arg">self</span>)</span><br />
      When a WebSocket is created it automatically registers an event 
      handler with the eventbus, the ID of that handler is returned.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.binary_handler_id">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="api_shim.core.http.WebSocket-class.html#text_handler_id" class="summary-sig-name">text_handler_id</a>(<span class="summary-sig-arg">self</span>)</span><br />
      When a WebSocket is created it automatically registers an event 
      handler with the eventbus, the ID of that handler is returned.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.text_handler_id">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="api_shim.core.http.WebSocket-class.html#write_binary_frame" class="summary-sig-name">write_binary_frame</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">buf</span>)</span><br />
      Write data to the websocket as a binary frame</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.write_binary_frame">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="api_shim.core.http.WebSocket-class.html#write_text_frame" class="summary-sig-name">write_text_frame</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">text</span>)</span><br />
      Write data to the websocket as a text frame</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.write_text_frame">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="close"></a><span class="summary-sig-name">close</span>(<span class="summary-sig-arg">self</span>)</span><br />
      Close the websocket</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.close">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="api_shim.core.http.WebSocket-class.html#close_handler" class="summary-sig-name">close_handler</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">handler</span>)</span><br />
      Set a closed handler on the connection, the handler receives a no 
      parameters.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.close_handler">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="api_shim.core.streams.ReadStream-class.html">streams.ReadStream</a></code></b>:
      <code><a href="api_shim.core.streams.ReadStream-class.html#data_handler">data_handler</a></code>,
      <code><a href="api_shim.core.streams.ReadStream-class.html#end_handler">end_handler</a></code>,
      <code><a href="api_shim.core.streams.ReadStream-class.html#exception_handler">exception_handler</a></code>,
      <code><a href="api_shim.core.streams.ReadStream-class.html#pause">pause</a></code>,
      <code><a href="api_shim.core.streams.ReadStream-class.html#resume">resume</a></code>
      </p>
    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="api_shim.core.streams.ReadStream-class.html">streams.ReadStream</a></code></b> (private):
      <code><a href="api_shim.core.streams.ReadStream-class.html#_to_read_stream" onclick="show_private();">_to_read_stream</a></code>
      </p></div>
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="api_shim.core.streams.WriteStream-class.html">streams.WriteStream</a></code></b>:
      <code><a href="api_shim.core.streams.WriteStream-class.html#drain_handler">drain_handler</a></code>,
      <code><a href="api_shim.core.streams.WriteStream-class.html#get_write_queue_max_size">get_write_queue_max_size</a></code>,
      <code><a href="api_shim.core.streams.WriteStream-class.html#set_write_queue_max_size">set_write_queue_max_size</a></code>,
      <code><a href="api_shim.core.streams.WriteStream-class.html#write">write</a></code>,
      <code><a href="api_shim.core.streams.WriteStream-class.html#write_queue_full">write_queue_full</a></code>
      </p>
    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="api_shim.core.streams.WriteStream-class.html">streams.WriteStream</a></code></b> (private):
      <code><a href="api_shim.core.streams.WriteStream-class.html#_to_write_stream" onclick="show_private();">_to_write_stream</a></code>
      </p></div>
    </td>
  </tr>
</table>
<!-- ==================== CLASS VARIABLES ==================== -->
<a name="section-ClassVariables"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Class Variables</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-ClassVariables"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="api_shim.core.streams.WriteStream-class.html">streams.WriteStream</a></code></b>:
      <code><a href="api_shim.core.streams.WriteStream-class.html#write_queue_max_size">write_queue_max_size</a></code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="__init__"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">__init__</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">websocket</span>)</span>
    <br /><em class="fname">(Constructor)</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.__init__">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  
  <dl class="fields">
    <dt>Overrides:
        object.__init__
        <dd><em class="note">(inherited documentation)</em></dd>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="binary_handler_id"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">binary_handler_id</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.binary_handler_id">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>When a WebSocket is created it automatically registers an event 
  handler with the eventbus, the ID of that handler is returned.</p>
  <p>Given this ID, a different event loop can send a binary frame to that 
  event handler using the event bus and that buffer will be received by 
  this instance in its own event loop and written to the underlying 
  connection. This allows you to write data to other websockets which are 
  owned by different event loops.</p>
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@property</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="text_handler_id"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">text_handler_id</span>(<span class="sig-arg">self</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.text_handler_id">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>When a WebSocket is created it automatically registers an event 
  handler with the eventbus, the ID of that handler is returned.</p>
  <p>Given this ID, a different event loop can send a text frame to that 
  event handler using the event bus and that buffer will be received by 
  this instance in its own event loop and written to the underlying 
  connection. This allows you to write data to other websockets which are 
  owned by different event loops.</p>
  <dl class="fields">
    <dt>Decorators:</dt>
    <dd><ul class="nomargin-top">
        <li><code>@property</code></li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="write_binary_frame"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">write_binary_frame</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">buf</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.write_binary_frame">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Write data to the websocket as a binary frame</p>
  <p>Keyword arguments:</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>buffer</code></strong> - Buffer data to write to socket.</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="write_text_frame"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">write_text_frame</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">text</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.write_text_frame">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Write data to the websocket as a text frame</p>
  <p>Keyword arguments:</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>text</code></strong> - text to write to socket</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="close_handler"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">close_handler</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">handler</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="api_shim.core.http-pysrc.html#WebSocket.close_handler">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Set a closed handler on the connection, the handler receives a no 
  parameters. This can be used as a decorator.</p>
  <p>Keyword arguments: handler - The handler to be called when writing has
  been completed. It is wrapped in a CloseHandler.</p>
  <dl class="fields">
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

      <th class="navbar" width="100%"></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1
    on Wed Jul 17 20:24:59 2013
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>